Markup languages and applications associated therewith continue to evolve and become commonplace in today's computing environments. Generally, a markup language describes a set of labels that are embedded within text to distinguish groups of elements or individual elements for display or identification purposes. Typically, the labels are known as “tags.” Markup languages identify elements within a continuous stream of text rather than more structured data in a database. One particular markup language, extensible markup language (XML), can convert text streams into the equivalent of database records.
Today, XML is known as an open standard for describing data. Oftentimes, XML is employed to define data elements with respect to a web page and/or business-to-business documents. XML is similar in tag structure to Hypertext Markup Language (HTML). However, HTML defines how elements are to be displayed while XML defines the logical content of the elements.
As such, contrary to HTML which uses predefined tags, XML enables a developer of a page to define tags. Thus, virtually any data item can be identified using XML. As a result, XML documents of fragments can function similar to database records. To this end, database functionality can be employed upon XML fragments.
By way of example, a business can use XML to define items such as product, customer and outstanding balance due. Accordingly, by using XML to identify these items, XML documents of fragments can be structured and function much like database records. This common method for identifying data (e.g., XML) supports business-to-business transactions and has become a commonplace format for electronic data interchange (EDI) transactions.
XML tags are defined in an XML schema, which identifies content type as well as the name of elements and attributes. Unlike HTML, which is known to employ a somewhat loose coding style tolerant of coding errors, convention XML pages have to be “well formed.”
Because XML organizes records in a format similar to a database format, recent developments have been directed to querying upon and navigating through XML fragments. To this end, many special purpose languages have been created to effect obtaining information. However, these special purpose languages require imperative mechanisms to operate upon the traditional rigid programmed fragments.